package com.crm.system.service.customerManager;

import com.crm.common.model.DhPageInfo;
import com.crm.model.entity.customerManager.CustomerPay;
import com.crm.model.qo.customerManager.CustomerPayQO;
import com.crm.model.vo.customerManager.CustomerPayDetailVO;
import com.crm.model.vo.customerManager.CustomerPayVO;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;

/**
 * @Author:chaifuyou
 * @Date: 2021/4/30 9:47
 */
public interface CustomerPayService {

    /**
     * 客户充值列表
     * @param pageIndex
     * @param pageSize
     * @param sortName
     * @param sortOrder
     * @param qo
     * @return
     */
    DhPageInfo<CustomerPayVO> selectCustomerPayList(Integer pageIndex, Integer pageSize, String sortName, String sortOrder, CustomerPayQO qo);


    /**
     * 导出客户充值数据
     * @param customerPayQO
     * @param outputStream
     * @return
     */
    boolean exportCustomerPayList(CustomerPayQO customerPayQO, ServletOutputStream outputStream);

    /**
     * 添加客户充值信息
     * @param customerPay
     */
    void saveCustomerPay(CustomerPay customerPay);

    /**
     * 修改充值信息
     * @param customerPay
     */
    boolean updateCustomerPay(CustomerPay customerPay);

    /**
     * 财务确认收款
     * @param
     */
    void notarizeCustomerPay(CustomerPay customerPay);

    /**
     * 删除充值申请
     * @param customerPayId
     * @return
     */
    boolean deleteCustomerPay(String customerPayId);


    /**
     * 客户充值详情查询
     * @param customerPayId
     * @return
     */
    CustomerPayDetailVO queryCustomerPayDetail(String customerPayId);
}
